home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
tool
/
dprint
/
dp_fkey.c
< prev
next >
Wrap
Text File
|
1994-08-11
|
3KB
|
132 lines
/*
8086|Printman/POSTCARD ファンクションキーコマンド処理ルーチン
Copyright (c) 1993,94 Delmonta
*/
#include"dprint.h"
#include<stdlib.h>
/*---------------------------------------------------------------------------*/
void dp_putfkey(unsigned f)
{
unsigned i;
char menuchar[10][5] =
{
" 前 "," 次 ","JUMP","削除","データ",
"印刷","ファイル","ソノ他","DOS ","終了"
};
printf("\033[0;37m\033[24;1f\033[2K");
for (i=0 ; i<10 ; i++)
{
if (f & 1)
printf("\033[8m");
printf("\033[7;32m%u\033[7;36m%4s\033[0m ",i+1,menuchar[i]);
f = f>>1;
}
dp_putcardnum();
}
/*---------------------------------------------------------------------------*/
static void dp_jumpmenu(void)
{
int a;
jmpmenu_rep:
printf( "\033[%d;1f\033[33mカード番号(1~%d):",
SYSLINE_START,Cardnum+1);
a = dp_getval();
if (1<=a && a<=Cardnum+1) /* 正しい入力 */
Cardpos = a-1;
else if (a != -1) /* 正しい入力でも、 */
{ /* ESCキーでの中断でもない */
putchar('\7');
goto jmpmenu_rep;
}
printf("\033[0;37m\033[13;1f\033[2K");
card_reshow(63);
}
/*---------------------------------------------------------------------------*/
static void dp_childprocess(void)
{
printf( "\033[2J"
"\033[33mEXIT<改行>\033[37mでカード画面に戻ります。\n");
system("");
dp_puttitle();
card_reshow(63);
}
/*---------------------------------------------------------------------------*/
void dp_funcmenu(void)
{
char c = dp_getch();
switch (c)
{
case 0x53:
if (Cardpos > 0) /* PF1:前のカード */
{
Cardpos--;
dp_putcardnum();
card_reshow(63);
}
break;
case 0x54:
if (Cardpos < Cardnum) /* PF2:次のカード */
{
Cardpos++;
dp_putcardnum();
card_reshow(63);
}
break;
case 0x55: /* PF3:ジャンプ */
dp_jumpmenu();
break;
case 0x56: /* PF4:カーソル位置のデータの削除 */
if (Cardpos<Cardnum)
{
if (Ypos==-1)
Card[Cardpos]->zipcode[0] = -1;
else
Card[Cardpos]->data[Ypos][0] = '\0';
Changedflag = TRUE;
}
break;
case 0x57: /* PF5: データ処理メニュー */
dp_datamenu();
break;
case 0x45: /* PF6:印刷 */
dp_printmenu();
break;
case 0x4a: /* PF7:ファイル */
dp_filemenu();
break;
case 0x50: /* PF8:その他のメニュー */
dp_othersmenu();
break;
case 0x51: /* PF9: 子プロセス */
dp_childprocess();
break;
case 0x5a: /* PF10:終了 */
if (dp_isallsure())
dp_endscreen(EXITCODE_OK);
}
}